package com.example.config;

import com.example.interceptor.LoginCheckInterceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

//第二部: 注册配置拦截器
@Configuration //配置类
public class WebConfig implements WebMvcConfigurer {

    @Autowired
    private LoginCheckInterceptor loginCheckInterceptor;

    /**
     * 将拦截器 loginCheckInterceptor 注册到 所有请求路径 上（即每个请求都会执行一次这个拦截器的逻辑）。
     * 但注意，注册路径只是定义了拦截器作用的范围，并不等同于必须拦截。
     * 也就是说，路径注册是定义了拦截器生效范围，但实际放行还是要看具体的拦截逻辑本身决定（由 preHandle() 中返回的 true 或 false 确定）。
     * 注册拦截器时设置的是『拦截器作用范围』，但最终的『是否拦截』决定权掌握在拦截器的业务逻辑中（preHandle()方法），二者分工不同。
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(loginCheckInterceptor).addPathPatterns("/**");
    }

}
